package com.heima.article.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.heima.model.article.dtos.ArticleDto;
import com.heima.model.article.dtos.ArticleHomeDto;
import com.heima.model.article.pojos.ApArticle;
import com.heima.model.behavior.dtos.ArticleInfoDto;
import com.heima.model.comment.dtos.CommentArticleDto;
import com.heima.model.comment.dtos.CommentOperationDto;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.wemedia.dtos.StatisticsPageDto;

import java.util.Date;

/**
 * @author 陈辉
 * @data 2023 15:41
 */
public interface ApArticleService extends IService<ApArticle> {
    /**
     * app文章首页加载/加载更多/加载更新
     * @param dto
     * @param loadtypeLoadMore
     * @return
     */
    ResponseResult load(ArticleHomeDto dto, Short loadtypeLoadMore);

    /**
     * 保存或修改app文章信息
     * @param dto
     * @return
     */
    ResponseResult saveOrUpdateArticle(ArticleDto dto);

    /**
     * 根据id获取作者名称
     * @param id
     * @return
     */
    ResponseResult getNameById(Integer id);

    /**
     * 查询文章和评论
     * @param dto
     * @return
     */
    ResponseResult findNewsComments(CommentArticleDto dto);


    /**
     * 加载文章行为-数据回显
     * @param dto
     * @return
     */
    ResponseResult article_behavior(ArticleInfoDto dto);

    /**
     * 更改评论状态
     * @param dto
     * @return
     */
    ResponseResult updateArticleStatus(CommentOperationDto dto);

    /**
     * 图文统计
     * @param wmUserId
     * @param beginDate
     * @param endDate
     * @return
     */
    ResponseResult statisticsNum(Integer wmUserId, Date beginDate, Date endDate);

    /**
     * 文章统计-分页统计
     * @param statisticsPageDto
     * @return
     */
    ResponseResult newPage(StatisticsPageDto statisticsPageDto);

    //增加评论数
    void AddComment(Long articleId);

    //减少评论数
    void ReduceComment(Long articleId);
}
